Build a CityJSON Metadata Extent Coordinate Validator
Parse CityJSON 2.0 metadata objects to verify geographical extent bounding coordinates. Calculate actual dataset bounds from decompressed vertices and flag metadata discrepancies.
What you are building
The core problem, expected build, and operating context for this challenge.
Parse CityJSON 2.0 metadata objects to verify geographical extent bounding coordinates. Calculate actual dataset bounds from decompressed vertices and flag metadata discrepancies.
Municipal Tax Assessor
Ingest CityJSON 2.0 models and extract the root metadata geographicalExtent array.
Decompress integer coordinates from the vertices array using the transform object.
Calculate the true min/max spatial bounding box enclosing all decompressed vertices.
Generate a metadata discrepancy report comparing declared extents versus calculated bounding boxes.
Browser validation portal showing calculated vs declared extents and bounding box error warnings.
Author synthetic CityJSON 2.0 documents with '+' prefix extension object types and custom attributes. Starter examples below are synthetic. They are not downloaded records.
CityJSON Applies CityJSON Section 5 Metadata object specifications to validate geographicalExtent arrays.
mastra-ai, typescript, zod. Mastra AI orchestrates schema loading, regex pattern verification, and diagnostic error explanation. Instruction-tuned LLM capable of schema parsing and concise error reporting via API.
Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.
Calculates true bounds accurately from integer decompressed vertices.
Identifies files where metadata extent deviates from actual geometry.
Validation report returns status and calculated geographical boundary mismatch distances.
```json [ { "input": { "type": "CityJSON", "metadata": { "geographicalExtent": [ 0, 0, 0, 100, 100, 50 ] }, "calculated_bounds": [ 0, 0, 0, 100, 100, 50 ] }, "expected_output": { "extent_declared": true, "mismatch": false, "max_deviation": 0, "mapping_valid": true } }, { "input": { "type": "CityJSON", "metadata": { "geographicalExtent": [ 0, 0, 0, 50, 50, 20 ] }, "calculated_bounds": [ 0, 0, 0, 100, 100, 50 ] }, "expected_output": { "extent_declared": true, "mismatch": true, "max_deviation": 50, "mapping_valid": false } } ] ```
Validator checks syntax and schema metadata only; it does not alter statutory property tax records. Use mock external writes. Require human review before any real deployment.
Participation guide
Validator checks syntax and schema metadata only; it does not alter statutory property tax records. Use mock external writes and human review.
How work is evaluated
Calculates true bounds accurately from integer decompressed vertices. Identifies files where metadata extent deviates from actual geometry. Validation report returns status and calculated geographical boundary mismatch distances.
Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.
Challenge datasets
Public datasets, plus the private datasets you have access to.
How submissions are scored
These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.
Complete workflow
Ingest CityJSON 2.0 models and extract the root metadata geographicalExtent array. Decompress integer coordinates from the vertices array using the transform object. Calculate the true min/max spatial bounding box enclosing all decompressed vertices. Generate a metadata discrepancy report comparing declared extents versus calculated bounding boxes.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Correctness and evidence
Calculates true bounds accurately from integer decompressed vertices. Identifies files where metadata extent deviates from actual geometry. Validation report returns status and calculated geographical boundary mismatch distances.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Review interface
Browser validation portal showing calculated vs declared extents and bounding box error warnings.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Safe execution
Validator checks syntax and schema metadata only; it does not alter statutory property tax records.
This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.
What you should walk away with
Ingest CityJSON 2.0 models and extract the root metadata geographicalExtent array.
Decompress integer coordinates from the vertices array using the transform object.
Calculate the true min/max spatial bounding box enclosing all decompressed vertices.
Generate a metadata discrepancy report comparing declared extents versus calculated bounding boxes.
Reference links and supporting material
Author synthetic CityJSON 2.0 documents with '+' prefix extension object types and custom attributes. Supplied starter examples are synthetic, not source extracts.
Challenge setup
Configuration summary for this challenge.
Challenge input
Input details are not configured.
Mastra AI
TypeScript agent framework.
Evaluated output
No output checks are configured.
- Ingest CityJSON 2.0 models and extract the root metadata geographicalExtent array. Decompress integer coord...
- Calculates true bounds accurately from integer decompressed vertices. Identifies files where metadata exten...
- Browser validation portal showing calculated vs declared extents and bounding box error warnings.
- 2 public reference cases
- 2 configured tools
Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.
View technical recipe
Configured tools
- Mastra AI · Optional
- Mastra AI · Optional
Evaluation contract
- Complete workflow · Weight 40
- Correctness and evidence · Weight 30
- Review interface · Weight 20
- Safe execution · Weight 10
Reference cases
- 2 public reference cases
Workflow tasks
No workflow tasks are configured.
Recipe freeze marker
No recipe freeze time is recorded.