Add lookup syntax blueprint

Part of #338 (closed).

This doesn't implement absolutely everything from the "Things that we want to be able to express" list in #338 (closed). I'm happy to add them if needed, but I wasn't sure of use cases, and it might be that on reflection we decide that this is enough. Current missing things:

  • Implicit default collection
    • Do we have any cases where we need this? For string lookups, I'm concerned that it would mean similar-looking strings mean very different things in different contexts. For dictionary lookups, we could just omit .collection.
  • Single artifact with an alternate lookup name
    • I'm not sure whether this is a good idea, as opposed to just making lookups smarter where needed. We've gone back and forth on this a few times with environments.
  • Single artifact with a list of names / alternate lookup names to try in order
    • Ditto. The list syntax sort of covers this, except it doesn't stop at the first match.
  • Multiple artifacts with a common name prefix (expected to be useful for workflows)
    • Are list lookups as defined here enough for this?

Merge request reports

Loading