bend-kit-router Releases (3): 0.2.0.0 0x9606cc4b1afb0de13a7da7c0f6fc3a82 indexed https://jend.leeeet.dev/files.txt?path=bend-kit-router@0.2.0.0 0.1.1.1 0x3d28a7f089678dce31938494fe1c556b unindexed https://jend.leeeet.dev/files.txt?path=bend-kit-router@0.1.1.1 0.1.1.0 0xf2239decc78af956c471ebf7f2f50374 unindexed https://jend.leeeet.dev/files.txt?path=bend-kit-router@0.1.1.0 Definitions (106, 1 to 100 shown): Router.Segment (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Segment) type Segment is Data: Literal{text: String} Parameter{name: String} Router.Entry (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Entry) type Entry<-A: Data> is Data: Entry{method: String, pattern: String, action: A, groups: List<&2, U32>} Router.Handler (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Handler) type Handler<-A: Data> is Data: Handler{method: String, pattern: String, segments: List<&2, Segment>, action: A} Router.Path (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Path) type Path<-A: Data> is Data: Path{segments: List<&2, Segment>, handlers: List<&2, Handler>, groups: List<&2, U32>, allow: String} Router.Table (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Table) type Table<-A: Data> is Data: Table{paths: List<&2, Path>, allow: String} Router.Error (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Error) type Error is Data: InvalidPattern{pattern: String} InvalidMethod{method: String} Duplicate{method: String, pattern: String} GroupConflict{pattern: String} BadTarget{} Router.Choice (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Choice) type Choice<-A: Data> is Data: Found{action: A, params: Map<&2, String>, groups: List<&2, U32>, method: String, pattern: String} MethodMissing{groups: List<&2, U32>, allow: String} Options{groups: List<&2, U32>, allow: String} NotFound{} Router.Resolved (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Resolved) type Resolved<-A: Data> is Data: Resolved{target: Target.Target, choice: Choice} Router.Hidden (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Hidden) type Hidden is Data: Hidden{pattern: String, methods: String} Router.Description (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=Description) type Description is Data: Description{method: String, pattern: String, groups: List<&2, U32>, hidden: List<&2, Hidden>} Router.scalar (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=scalar) def scalar(+c: U32) -> Bool: Router.literal.valid (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=literal.valid) def literal.valid(s: String) -> Bool: Router.name.tail (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=name.tail) def name.tail(s: String) -> Bool: Router.name.valid (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=name.valid) def name.valid(s: String) -> Bool: Router.member (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=member) def member(xs: List<&2, String>, +s: String) -> Bool: Router.pattern.segment (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=pattern.segment) def pattern.segment(s: String, names: List<&2, String>) -> Maybe<&2, Segment>: Router.pattern.names (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=pattern.names) def pattern.names(segment: Segment, names: List<&2, String>) -> List<&2, String>: Router.pattern.parts (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=pattern.parts) def pattern.parts(xs: List<&2, String>, +names: List<&2, String>, acc: List<&2, Segment>) -> Maybe<&2, List<&2, Segment>>: Router.pattern (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=pattern) def pattern(s: String) -> Maybe<&2, List<&2, Segment>>: Router.token (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=token) def token(+c: U32) -> Bool: Router.method.tail (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=method.tail) def method.tail(s: String) -> Bool: Router.method.valid (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=method.valid) def method.valid(s: String) -> Bool: Router.continue (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=continue) def continue(ok: Bool, later: Unit -> Bool) -> Bool: Router.matches (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=matches) def matches(pat: List<&2, Segment>, got: List<&2, String>) -> Bool: Router.capture (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=capture) def capture(pat: List<&2, Segment>, got: List<&2, String>, acc: Map<&2, String>) -> Map<&2, String>: Router.shape (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=shape) def shape(a: List<&2, Segment>, b: List<&2, Segment>) -> Bool: Router.specific (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=specific) def specific(a: List<&2, Segment>, b: List<&2, Segment>) -> Bool: Router.groups.eq (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=groups.eq) def groups.eq(a: List<&2, U32>, b: List<&2, U32>) -> Bool: Router.handler.has (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=handler.has) def handler.has(~A: Data, xs: List<&2, Handler>, +method: String) -> Bool: Router.insert.merge (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=insert.merge) def insert.merge(~A: Data, duplicate: Bool, same_groups: Bool, entry: Handler, segments: List<&2, Segment>, handlers: List<&2, Handler>, groups: List<&2, U32>, rest: List<&2, Path>) -> Result<&2, &2, Error, List<&2, Path>>: Router.insert.branch (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=insert.branch) def insert.branch(~A: Data, same: Bool, segments: List<&2, Segment>, +handlers: List<&2, Handler>, +old_groups: List<&2, U32>, allowed: String, tail: List<&2, Path>, entry: Handler, groups: List<&2, U32>, rest: Unit -> Result<&2, &2, Error, List<&2, Path>>) -> Result<&2, &2, Error, List<&2, Path>>: Router.insert (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=insert) # ponytail: preparation merges shapes in O(routes²); replace with a shape index if construction becomes a bottleneck. def insert(~A: Data, paths: List<&2, Path>, +entry: Handler, +groups: List<&2, U32>) -> Result<&2, &2, Error, List<&2, Path>>: Router.method.prepend (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=method.prepend) def method.prepend(get: Bool, method: String, tail: List<&2, String>) -> List<&2, String>: Router.method.names (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=method.names) def method.names(~A: Data, xs: List<&2, Handler>) -> List<&2, String>: Router.unique (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=unique) def unique(xs: List<&2, String>, prev: String, +acc: List<&2, String>) -> List<&2, String>: Router.allow (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=allow) def allow(xs: List<&2, String>) -> String: Router.finish.paths (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=finish.paths) def finish.paths(~A: Data, paths: List<&2, Path>) -> List<&2, Path>: Router.all.methods (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=all.methods) def all.methods(~A: Data, paths: List<&2, Path>) -> List<&2, String>: Router.prepare.pattern (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=prepare.pattern) def prepare.pattern(~A: Data, parsed: Maybe<&2, List<&2, Segment>>, method: String, pattern: String, action: A, groups: List<&2, U32>, paths: List<&2, Path>) -> Result<&2, &2, Error, List<&2, Path>>: Router.prepare.entry (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=prepare.entry) def prepare.entry(~A: Data, valid: Bool, entry: Entry, paths: List<&2, Path>) -> Result<&2, &2, Error, List<&2, Path>>: Router.prepare.go (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=prepare.go) def prepare.go(~A: Data, entries: List<&2, Entry>, paths: List<&2, Path>) -> Result<&2, &2, Error, Table>: Router.prepare (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=prepare) def prepare(~A: Data, entries: List<&2, Entry>) -> Result<&2, &2, Error, Table>: Router.best.compare (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=best.compare) def best.compare(~A: Data, candidate: Path, old: Path) -> Maybe<&2, Path>: Router.best.pick (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=best.pick) def best.pick(~A: Data, best: Maybe<&2, Path>, candidate: Path) -> Maybe<&2, Path>: Router.best.step (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=best.step) def best.step(~A: Data, matched: Bool, candidate: Path, best: Maybe<&2, Path>) -> Maybe<&2, Path>: Router.best (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=best) # ponytail: lookup scans prepared paths in O(routes × segments); use a trie if measured dispatch cost warrants it. def best(~A: Data, paths: List<&2, Path>, +segments: List<&2, String>, acc: Maybe<&2, Path>) -> Maybe<&2, Path>: Router.handler.next (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=handler.next) def handler.next(~A: Data, same: Bool, here: Handler, later: Unit -> Maybe<&2, Handler>) -> Maybe<&2, Handler>: Router.handler (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=handler) def handler(~A: Data, xs: List<&2, Handler>, +method: String) -> Maybe<&2, Handler>: Router.chosen (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=chosen) def chosen(~A: Data, hit: Maybe<&2, Handler>, segments: List<&2, String>, +groups: List<&2, U32>, +allowed: String, options: Bool) -> Choice: Router.choose.fallback (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=choose.fallback) def choose.fallback(~A: Data, head: Bool, handlers: List<&2, Handler>, method: String, segments: List<&2, String>, groups: List<&2, U32>, allowed: String) -> Choice: Router.choose.method (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=choose.method) def choose.method(~A: Data, direct: Maybe<&2, Handler>, +handlers: List<&2, Handler>, +method: String, segments: List<&2, String>, groups: List<&2, U32>, allowed: String) -> Choice: Router.choose.path (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=choose.path) def choose.path(~A: Data, path: Maybe<&2, Path>, +method: String, segments: List<&2, String>) -> Choice: Router.resolve.star (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=resolve.star) def resolve.star(~A: Data, star: Bool, paths: List<&2, Path>, allowed: String, target: Target.Target, method: String, +segments: List<&2, String>) -> Resolved: Router.resolve.target (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=resolve.target) def resolve.target(~A: Data, parsed: Maybe<&2, Target.Target>, table: Table, method: String) -> Result<&2, &2, Error, Resolved>: Router.resolve (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=resolve) def resolve(~A: Data, table: Table, +method: String, target: String) -> Result<&2, &2, Error, Resolved>: Router.route.match (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=route.match) def route.match(ok: Bool, ss: List<&2, Segment>, got: List<&2, String>) -> Maybe<&2, Map<&2, String>>: Router.route.path (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=route.path) def route.path(star: Bool, +ss: List<&2, Segment>, +got: List<&2, String>) -> Maybe<&2, Map<&2, String>>: Router.route.target (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=route.target) def route.target(parsed: Maybe<&2, Target.Target>, +ss: List<&2, Segment>) -> Maybe<&2, Map<&2, String>>: Router.route.pattern (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=route.pattern) def route.pattern(parsed: Maybe<&2, List<&2, Segment>>, path: String, method: String) -> Maybe<&2, Map<&2, String>>: Router.route.method (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=route.method) def route.method(same: Bool, p: String, path: String, method: String) -> Maybe<&2, Map<&2, String>>: Router.route (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=route) def route(want: String, +method: String, pattern: String, path: String) -> Maybe<&2, Map<&2, String>>: Router.overlap (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=overlap) def overlap(a: List<&2, Segment>, b: List<&2, Segment>) -> Bool: Router.unavailable.prepend (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=unavailable.prepend) def unavailable.prepend(keep: Bool, h: String, tail: List<&2, String>) -> List<&2, String>: Router.unavailable (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=unavailable) def unavailable(xs: List<&2, String>, +present: List<&2, String>) -> List<&2, String>: Router.hidden.add (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=hidden.add) def hidden.add(empty: Bool, pattern: String, methods: String, tail: List<&2, Hidden>) -> List<&2, Hidden>: Router.hidden.handlers (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=hidden.handlers) def hidden.handlers(~A: Data, handlers: List<&2, Handler>, +present: List<&2, String>, tail: List<&2, Hidden>) -> List<&2, Hidden>: Router.hidden.path (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=hidden.path) def hidden.path(~A: Data, hides: Bool, handlers: List<&2, Handler>, present: List<&2, String>, tail: List<&2, Hidden>) -> List<&2, Hidden>: Router.hidden.scan (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=hidden.scan) def hidden.scan(~A: Data, paths: List<&2, Path>, +segments: List<&2, Segment>, +methods: List<&2, String>) -> List<&2, Hidden>: Router.description.handlers (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=description.handlers) def description.handlers(~A: Data, handlers: List<&2, Handler>, +groups: List<&2, U32>, +hidden: List<&2, Hidden>) -> List<&2, Description>: Router.description.paths (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=description.paths) def description.paths(~A: Data, paths: List<&2, Path>, +all: List<&2, Path>) -> List<&2, Description>: Router.describe (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/router.bend&name=describe) def describe(~A: Data, table: Table) -> List<&2, Description>: Target.Query (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=Query) type Query is Data: Query{key: String, value: String} Target.Target (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=Target) type Target is Data: Target{segments: List<&2, String>, query: List<&2, Query>, authority: Maybe<&2, String>, star: Bool} Target.Utf (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=Utf) type Utf is Data: Utf{need: U32, lo: U32, hi: U32, cp: U32, out: String} Target.between (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=between) def between(+c: U32, lo: U32, hi: U32) -> Bool: Target.utf.lead (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=utf.lead) def utf.lead(+c: U32, out: String, ascii: Bool) -> Maybe<&2, Utf>: Target.utf.more (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=utf.more) def utf.more(ok: Bool, +need: U32, +cp: U32, +out: String) -> Maybe<&2, Utf>: Target.utf.step (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=utf.step) def utf.step(idle: Bool, +c: U32, need: U32, lo: U32, hi: U32, cp: U32, out: String) -> Maybe<&2, Utf>: Target.utf.finish (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=utf.finish) def utf.finish(st: Maybe<&2, Utf>) -> Maybe<&2, String>: Target.utf.go (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=utf.go) def utf.go(s: String, st: Maybe<&2, Utf>) -> Maybe<&2, String>: Target.text.valid (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=text.valid) def text.valid(s: String, +slash: Bool) -> Bool: Target.decoded.valid (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=decoded.valid) def decoded.valid(+s: String, slash: Bool) -> Maybe<&2, String>: Target.decoded (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=decoded) def decoded(st: Maybe<&2, String>, slash: Bool) -> Maybe<&2, String>: Target.percent.got (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=percent.got) def percent.got(st: Maybe<&2, String>, slash: Bool) -> Maybe<&2, String>: Target.percent (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=percent) def percent(s: String, slash: Bool) -> Maybe<&2, String>: Target.segments (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=segments) def segments(xs: List<&2, String>) -> Maybe<&2, List<&2, String>>: Target.split.path (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=split.path) def split.path(+path: String) -> List<&2, String>: Target.plus (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=plus) def plus(s: String) -> String: Target.query.pair (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=query.pair) def query.pair(pair: String & String) -> Maybe<&2, Query>: Target.query.field (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=query.field) def query.field(field: String) -> Maybe<&2, Query>: Target.query (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=query) def query(xs: List<&2, String>, acc: List<&2, Query>) -> Maybe<&2, List<&2, Query>>: Target.raw.valid (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=raw.valid) def raw.valid(s: String) -> Bool: Target.origin (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=origin) def origin(path: String, q: String, authority: Maybe<&2, String>) -> Maybe<&2, Target>: Target.origin.split (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=origin.split) def origin.split(pair: String & String, authority: Maybe<&2, String>) -> Maybe<&2, Target>: Target.alpha (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=alpha) def alpha(+c: U32) -> Bool: Target.scheme.tail (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=scheme.tail) def scheme.tail(s: String) -> Bool: Target.scheme (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=scheme) def scheme(s: String) -> Bool: Target.authority.take (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=authority.take) def authority.take(s: String, acc: String) -> String & String: Target.absolute.authority (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=absolute.authority) def absolute.authority(ok: Bool, authority: String, path: String) -> Maybe<&2, Target>: Target.absolute.taken (https://jend.leeeet.dev/definition.txt?path=bend-kit-router@0.2.0.0/target.bend&name=absolute.taken) def absolute.taken(pair: String & String) -> Maybe<&2, Target>: More: https://jend.leeeet.dev/packages/bend-kit-router.txt?definitions_offset=100