# Specification: Fix RRULE Object Expansion Error

## Overview
The previous fix for handling object-type `rrule` properties (returned by `ts-ics`) introduced a regression. The conversion logic used uppercase full names (e.g., `FREQUENCY`), but the `rrule` library's `parseString` method expects standard iCalendar shortened keys (e.g., `FREQ`). This results in an `Error: Unknown RRULE property 'FREQUENCY'`.

## Functional Requirements
- **Correct Key Mapping:** The logic that converts an `rrule` object back to a string must use standard iCalendar RRULE property keys.
- **Mapping Table:** 
    - `frequency` -> `FREQ`
    - `until` -> `UNTIL`
    - `count` -> `COUNT`
    - `interval` -> `INTERVAL`
    - `bysecond` -> `BYSECOND`
    - `byminute` -> `BYMINUTE`
    - `byhour` -> `BYHOUR`
    - `byday` -> `BYDAY`
    - `bymonthday` -> `BYMONTHDAY`
    - `byyearday` -> `BYYEARDAY`
    - `byweekno` -> `BYWEEKNO`
    - `bymonth` -> `BYMONTH`
    - `bysetpos` -> `BYSETPOS`
    - `wkst` -> `WKST`
- **Case Insensitivity:** The mapping should be case-insensitive for the input object keys.

## Implementation Steps
1.  **Reproduce:** Update the existing `expandRecurrences - object rrule` test case to use the key `frequency` and verify it fails with the reported error.
2.  **Fix:** Implement a mapping function in `icalendar.ts` to translate object keys to standard RRULE keys before stringifying.
3.  **Verify:** Run the test case to confirm it now passes.

## Acceptance Criteria
- [ ] Test `expandRecurrences - object rrule` passes with an object using `frequency` key.
- [ ] No "Unknown RRULE property" errors are logged for valid RRULE objects.
