Minecraft Villager Summon Command

So I'm trying to create this villager that sells God apples and God Potions, but this command is so long that I can't find the error inside.

Here is the command:

summon Villager ~ ~1 ~ {Profession:3,CustomName:"PvP Villager",CustomNameVisible:1,Career:1,CareerLevel:42,CanPickUpLoot:0,PersistenceRequired:1,Invulnerable:1,Offers:{Recipes:[{rewardExp:false,uses:-2147483648,maxUses:0,buy:{id:gold_block,Count:8},sell:{id:potion,Count:1,tag:{HideFlags:32,CustomPotionEffects:[{Id:10,Amplifier:1,Duration:410},{Id:22,Amplifier:3,Duration:2400},{Id:11,Amplifier:0,Duration:6000},{Id:12,Amplifier:0,Duration:6000}],display:{Name:"Gods water",Lore:["Who knew water was so good!"]},{buy:{id:"diamond_block",Count:8},maxUses:9999999,sell:{id:"golden_apple",Count:1,Damage:1},rewardExp:false}}}}]}}

This is the output I get when I try to use the command. I was also getting errors on the brackets, but I may have fixed those.

Data tag parsing failed: Unable to locate name/value separator for string: {buy:{id:"diamond_block",Count:8},maxUses:9999999,sell:{id:"golden_apple",Count:1,Damage:1},rewardExp:false}

Solution 1:

Each recipe (containing a buy item and a sell item) should be in the Recipe list, looking something like:

Correct structure

Currently, you have the second recipe inside the data of the first recipe's sell item:

Incorrect location

The following data should work:

{
    Profession: 3,
    CustomName: "PvP Villager",
    CustomNameVisible: 1,
    Career: 1,
    CareerLevel: 42,
    CanPickUpLoot: 0,
    PersistenceRequired: 1,
    Invulnerable: 1,
    Offers: {
        Recipes: [
            {
                rewardExp: false,
                uses: -2147483648,
                maxUses: 0,
                buy: {
                    id: gold_block,
                    Count: 8
                },
                sell: {
                    id: potion,
                    Count: 1,
                    tag: {
                        HideFlags: 32,
                        CustomPotionEffects: [
                            {
                                Id: 10,
                                Amplifier: 1,
                                Duration: 410
                            },
                            {
                                Id: 22,
                                Amplifier: 3,
                                Duration: 2400
                            },
                            {
                                Id: 11,
                                Amplifier: 0,
                                Duration: 6000
                            },
                            {
                                Id: 12,
                                Amplifier: 0,
                                Duration: 6000
                            }
                        ],
                        display: {
                            Name: "Gods water",
                            Lore: [
                                "Who knew water was so good!"
                            ]
                        }
                    }
                }
            },
            {
                buy: {
                    id: "diamond_block",
                    Count: 8
                },
                maxUses: 9999999,
                sell: {
                    id: "golden_apple",
                    Count: 1,
                    Damage: 1
                },
                rewardExp: false
            }
        ]
    }
}

I'd recommend building up commands and testing them along the way, rather than starting with a long command and adding in brackets to try to fix the errors.