This page is for listing API choices we considered, and rejected.
Something we could do, and considered, is huge unions of stringprefix for the inputs and outputs:
type Ware union {
| WareTar "tar:"
| WareGit "git:"
} representation stringprefix
type WareTar struct {
hash String
}
type WareGit struct {
hash String
}
Most output types would the same structure, but we repeat it as types anyway just in case:
type Output union {
| OutputTar "tar:"
# more fileset pack types go here.
} representation stringprefix
type OutputTar struct {
hash String
}
It's just absurdly verbose and type-spamming and doesn't really help anyone very much.
The example doesn't look too bad, but this list would get out of hand if actually implemented.
Just strings. It's fine.
We could use an enum for packtype without issue, probably, but it doesn't seem super necessary or useful, either, given that there's kiiiinda a plugin sorta thing going on down there.