HydroRoll-Team / HydroRoll-Team/OneRoll

Introduce typed values, inclusive ranges, and immutable variables

Open
#39 0 comments 0 reactions 0 assignees View on GitHub
area:engine area:language area:python blocked breaking-change priority:p1 type:feature workflow:afk
Dominant language
Python
Stars
3
Forks
1
Avg merge
3d 4h
Merged PRs (30d)
2

Description

## Parent

- #7

## What to build

Add the RFC-0001 runtime kinds and the RFC-0003 schema `2.0` serialization foundation for instructions and values.

## Frozen contract

- `Value` is a closed Scalar, Text, Boolean, Values, or RollSet union.
- RollSet items are `{node_id, annotations}` references and always retain `item_kind: scalar | text`, including when empty.
- Source Values literals are flat; occurrences, grouping, and repeat may produce bounded nested Values.
- `InstructionResult` contains `id`, frame-local `index`, byte `span`, canonical text, `value`, nullable `scalar`, `trace_root`, and nested `executions`.
- Scalar projection is identity for Scalar, a checked sum for flat scalar Values and Scalar RollSets, zero for empty scalar collections, and null for all other kinds.
- `${name}` and `${0}` resolve from immutable environments and preserve typed values.

## Acceptance criteria

- [ ] Rust types serialize exactly to the RFC-0003 schema and installed Python exposes the same decoded fields.
- [ ] Inclusive ranges, Boolean literals, nested Values, quoted strings, and empty typed collections have boundary cases.
- [ ] Variables return spanned unknown/wrong-kind errors without implicit coercion.
- [ ] Scalar arithmetic and projection use checked i64 operations.
- [ ] Instruction IDs are request-local, monotonic, and replay deterministic.
- [ ] Conformance covers every kind, projection, and invalid cross-kind operation.

## Blocked by

- #7
- #4
- #12
- #17

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading RFC-0001 and RFC-0003, then review blocking issues #7, #4, #12, and #17. Map the required Rust serialization types to the installed Python decoded fields and use the acceptance criteria to define conformance for every value kind, projection, boundary case, error, arithmetic operation, and deterministic instruction ID.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.