AEROSIM-TS-98
Present and select supported flight and environment presets
The pre-flight configurator exposes validated condition options as one governed selection state.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-15
- Component
- Web Application — Pre-flight configurator
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Define ConditionSelection with presetId, windVectorMps, visibilityM, turbulenceLevel, timeOfDay, and weatherCode; project supported presets into the pre-flight condition form; validate finite ranges and preset-compatible combinations on every edit; and retain the last valid draft until the player confirms a new revision.
Implementation contract
Implementation artifacts
- applications/web/src/preflight/conditions/condition-selection.ts
- applications/web/src/preflight/conditions/ConditionSelector.tsx
- applications/web/test/preflight/condition-selector.spec.tsx
Inputs
- The condition catalogue version and its supported preset records.
- A draft ConditionSelection and an edit command for one condition field.
Outputs
- A validated condition draft with catalogueVersion and monotonically increasing revision.
- A confirmed immutable ConditionSnapshot containing every displayed condition value.
Failure boundaries
- An unknown preset, non-finite numeric field, out-of-range value, or incompatible field combination returns a field-specific validation result and does not replace the last valid draft.
- A catalogue-version change invalidates confirmation made against the prior catalogue and requires reconfirmation.
Excluded scope
- Weather simulation and aerodynamic force calculation are owned by AEROSIM-FT-10.
- This task does not create a flight session or persist condition choices between browser sessions.
Verification steps
- Run applications/web/test/preflight/condition-selector.spec.tsx and prove every catalogue option round-trips to the displayed form.
- Inject an unknown preset, NaN wind component, boundary violation, incompatible combination, and catalogue-version change; assert rejection and preservation of the last valid draft.
- Confirm a valid draft, edit it afterward, and assert the emitted ConditionSnapshot remains unchanged.
Traceability
Requirements
Dependencies
- AEROSIM-TS-79Canonical ID: TASK-0079
UI/UX applicability
non_visual
This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.
Acceptance evidence
Verified delivery: EP5-FT15-T01: application PR #116 merged the reviewed ConditionSelection state machine and ConditionSelector as 8685927ed3437eefb7a76e51fa41f27b191c48d7 after RootAtSkic approved FT-15 solution/implementation and the TASK-0098 UI package in Discord message 1547161616746024970; 12 focused tests prove every catalogue option round-trips, unknown presets, non-finite wind, range violations, incompatible combinations, catalogue drift, monotonic revisions, immutable snapshots, and pre-flight integration without session creation; full repository validation, exact-head CI, integration validation, image build, and immutable publication passed in Actions runs 4167, 4168, and 4169. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.
Current evidence boundary
No current implementation, acceptance, release, or deployment evidence is claimed for this planned Task. Any prior implementation may be used only as prototype and discovery evidence.