You need to have the normal and inventory variant, even if you don't use them...
And I don't think that the model's textures works that way... because you should set the texture in the blockstate.
Yeah, the "cube_all" uses a "layer0" named texture, in vanilla, and a normal "all" texture in forge, so here's the correct one:
{
"forge_marker": 1,
"defaults": {
"textures": {
"all": "whatever:blocks/yourblock_def"
}
},
"variants": {
"visible=true": {
"model": "cube_all",
"textures": {
"all": "whatever:blocks/yourblock_true"
}
},
"visible=false": {
"model": "cube_all",
"textures": {
"all": "whatever:blocks/yourblock_false"
}
}
}
}