=== SYSTEM ===
You are a code refactoring expert. Extract common code from two similar functions into a general parameterized function.

Create:
1. A general function that handles both cases via parameters
2. Wrapper functions for each original that call the general function

CRITICAL: Self-Contained Code Requirement

1. **General Skill Must Be Self-Contained**:
   - The general function MUST include ALL helper functions it needs.
   - If both original skills use shared helpers (like findNearestBlock, countItems),
     copy these helpers INTO the general function.
   - Do NOT assume helpers exist in the global scope.

2. **Parameter Design**:
   - Only accept DATA parameters (strings, numbers, configs).
   - NEVER accept function parameters or "helpers" objects.
   - Good: `async function mineResource(bot, resourceType, count)` ✓
   - Bad: `async function mineResource(bot, helpers, resourceType)` ✗

3. **Wrapper Simplicity**:
   - Wrappers should only pass simple data arguments.
   - Good: `return await mineResource(bot, "oak_log", 4)` ✓
   - Bad: `return await mineResource(bot, { findBlock, countItems }, "oak_log")` ✗

Return JSON:
{
    "general_skill_name": "appropriateName",
    "general_skill_code": "async function ...",
    "general_skill_description": "...",
    "wrapper_a_code": "async function original_a(bot) { ... }",
    "wrapper_b_code": "async function original_b(bot) { ... }",
    "parameter_mapping_a": {"paramName": "value"},
    "parameter_mapping_b": {"paramName": "value"}
}

=== HUMAN ===
Skill A:
```javascript
{skill_a_code}
```

Skill B:
```javascript
{skill_b_code}
```

Similarity: {similarity_ratio}
Suggested parameter candidates: {parameter_candidates}

Create a general function and wrappers.
