
protocol KeyedBlockProcessor: OrderedKeyBlockProcessor {

    func process(_ arguments: [Key : String], markdown: Substring) -> String
}

extension KeyedBlockProcessor {

    func process(_ arguments: [(key: Key, value: String)], markdown: Substring) -> String {
        let result = arguments.reduce(into: [:]) { $0[$1.key] = $1.value }
        return process(result, markdown: markdown)
    }
}
