Python, indexed by what an object is before what it does.
The data model first — the dunder protocol an object is actually defined by — then the type system, the collections, and the standard library that stands beside them. You declare where you are standing, and the rows around you come back.
The model holds the domain; your org holds its own light on it.
A Hue Model is the world model of a domain — its rows, the positions they stand in, the two sides they fall on, and, where the domain has one, the source of truth that settles a row. There are no people in it. It is a model of the world, not of anyone in it, and it has no cutoff — only a last-visited state. You stand somewhere in it and it answers by position.
Stand somewhere, and the rows come to you
You copy a position out of the chamber's own map and send it back. No words are matched and nothing is guessed on your behalf — the door reads structure the index already carries, and answers with the neighbourhood you are standing in.
The rows below arrived with no search term at all, by position alone.
DATA-MODEL / DUNDER METHODS
placed
9
observed
0
unobserved
9
reached
9
the rest of its floor
__new__
Create new instance prior to __init__
feature
__init__
Initialise instance attributes
feature
__del__
Finalise object before reclamation
feature
__repr__
Unambiguous developer representation
feature
__str__
Readable user-facing string
feature
__eq__
Equality predicate
feature
__ne__
Inequality predicate
feature
__lt__
Less-than ordering
feature
__le__
Less-or-equal ordering
feature
ASYNCIO & CONCURRENT.FUTURES
placed
9
observed
0
unobserved
9
reached
9
the rest of its floor
asyncio run
Execute coroutine on a new event loop and return result
function
asyncio gather
Run coroutines concurrently and collect results
function
asyncio wait
Wait for futures with timeout and return condition
function
asyncio create_task
Schedule coroutine and return a task handle
function
asyncio sleep
Suspend current coroutine for given seconds
function
asyncio wait_for
Wait with timeout cancelling if exceeded
function
asyncio Queue
Asynchronous producer-consumer queue
function
asyncio Event
Coroutine-safe flag for notifying waiters
function
asyncio Lock
Mutual exclusion primitive across coroutines
function
A position the chamber does not hold comes back as a question
NOT A REAL ROOM→UNKNOWN_CATEGORY
28 rooms
The door never substitutes a nearby name. An unknown position returns the map instead, so the next thing you send is a place that exists rather than a guess that looked close.
Every row arrives already knowing its state
The reading is not a ranked list. Each row comes back in one of three states, and the state is the useful part — it tells you whether to build on the row, to go and look, or to honour it before you do either.
Zero point
The contract the work must implement. It is present whether or not anyone went looking for it, and it constrains the answer rather than decorating it.
Observed
Rows your org has already returned on. A lit row carries your org's reading as well as the chamber's.
Unobserved
Reached, and your organisation has not returned on it yet. This is the invitation, and it is where a return is worth the most — every one of them is a row you can light.
Two sides, and an ask lands on one of them
Python is indexed as the language and as the library that ships with it. A question about how an object behaves and a question about which module to reach for are different questions, and they are answered from different rooms.
The language
DATA-MODEL / DUNDER METHODS50
LANGUAGE INVARIANTS & RUNTIME48
TYPE SYSTEM (TYPE HINTS)39
KEYWORDS38
COLLECTIONS & ABCs32
OPERATORS32
CORE STDLIB NAMESPACES30
BUILT-IN TYPES29
PROTOCOLS & ABSTRACT BASE CLASSES29
EXPRESSIONS & COMPREHENSIONS27
STATEMENTS26
MODULES, IMPORTS & PACKAGES20
The standard library
THIRD-PARTY-CONVENTION RUNTIME
36
COLLECTIONS
24
ITERTOOLS & FUNCTOOLS
20
ASYNCIO & CONCURRENT.FUTURES
17
I/O & FILE OPERATIONS
16
MATH, RANDOM, STATISTICS, FRACTIONS, DECIMAL
14
OS, SYS, PATHLIB, SHUTIL
14
STRING OPERATIONS & FORMATTING
14
EXCEPTIONS, CONTEXTLIB, WARNINGS
13
DATA CLASSES & STRUCTURAL
12
DATETIME, TIME, CALENDAR, ZONEINFO
10
JSON, PICKLE, CSV, SQLITE3
10
TESTING
9
LOGGING, ARGPARSE, CONFIGPARSER
8
RE (REGEX)
8
TYPING-RUNTIME
6
A dunder method is not a library call. It is the contract the language itself will reach for, whether or not your code ever names it — which is why the two sides are indexed apart.
Seat levels
A Hue Models seat opens every Hue Model — the domains here today, and the ones that follow them.
Per seat, per month, pooled across the org — so one busy week never costs a quiet colleague their work. Lighting a row — returning what you observed — is the Observer's Index.
Before you compare two models
A hue identifies a row within a model, and never across them.
Bands are allocated per model and some overlap, so one hue can appear in more than one model. Each model is its own coordinate system, so two rows sharing a hue in different models are not related.