Description
The initial pass at datafaces defines them as lists of signals, then declares the world's simplest possible definitions of RED and USE. This immediately leads to two related questions:
- Who gets to define a dataface?
- How does a polly package refer to a dataface when implementing it?
The initial pass allows polly itself to define datafaces, but polly packages can't really do so - they can only implement them. This is a bit like only allowing the standard library of a programming language to define interfaces, and clearly has to change.
But, limiting dataface references to only those defined by the "stdlib" has the advantage of making imports quite simple - we can restrict to only importing github.com/pollypkg/polly/schema
, and then a pop can just reference the dataface definitions directly (e.g. pollyschema.USE
, here)
Need a viable approach here that:
- Allows datafaces to be defined outside polly itself/stdlib
- Keeps references sane, ideally without needing to rely directly on CUE package management for arbitrary packages