Dekorator robi binding z sygnatury funkcji.
Typy i wartości domyślne trafiają do JSON Schema, a lista argv zostaje deterministycznym szablonem komendy.
from urirun.v2 import decorated_bindings, uri_command
@uri_command("media://local/video/transcode")
def transcode(input: str, output: str, width: int = 1280, height: int = 720):
return ["ffmpeg", "-i", "{input}", "-vf", "scale={width}:{height}", "{output}"]
from urirun.v2 import compile_registry, decorated_bindings
bindings = decorated_bindings()
registry = compile_registry(bindings)
